📐 Новый модуль imath в Python: математика для целых чисел
На протяжении многих лет модуль
Это породило путаницу:
— В документации
— Невозможно чётко описать, какие типы аргументов принимает каждая функция.
— Сложнее разобраться, где искать нужные функции: целочисленные, статистические, комплексные — все перемешаны.
✅ Что предлагает PEP 791
Создать новый модуль
Вот список функций, которые переедут из
🔎
🔎
🔎
🔎
🔎
🔎
Их аналоги в
В PEP пока не входят новые функции, но обсуждается возможное расширение: число Делануа, тесты на простоту и другие инструменты теории чисел.
📌 Вывод:
Что думаете? Стоит ли Python разделять модули дальше по специализации?
🔗 Подробнее в PEP 791: https://clc.to/POzTkw
Библиотека питониста #свежак
На протяжении многих лет модуль
math
в Python становился все более перегруженным. Он начинался как обёртка над C-стандартом математических функций (в основном — с плавающей точкой), но со временем туда добавили и функции, не имеющие к нему отношения: math.gcd()
, math.factorial()
, math.isqrt()
и другие.Это породило путаницу:
— В документации
math
указано, что функции возвращают float
, но это не так для math.gcd()
или math.factorial()
.— Невозможно чётко описать, какие типы аргументов принимает каждая функция.
— Сложнее разобраться, где искать нужные функции: целочисленные, статистические, комплексные — все перемешаны.
Создать новый модуль
imath
, в котором будут собраны функции, работающие строго с целыми числами. Все возвращаемые значения — тоже целые (int
).Вот список функций, которые переедут из
math
в imath
:comb()
— число сочетанийfactorial()
— факториалgcd()
— наибольший общий делительisqrt()
— целочисленный квадратный кореньlcm()
— наименьшее общее кратноеperm()
— число размещенийИх аналоги в
math
сохранятся, но будут мягко устаревшими (soft deprecated) — они останутся в коде, но будут помечены как нежелательные к использованию.В PEP пока не входят новые функции, но обсуждается возможное расширение: число Делануа, тесты на простоту и другие инструменты теории чисел.
📌 Вывод:
imath
— это шаг к более чистой архитектуре стандартной библиотеки. Целые числа заслужили свой модуль.Что думаете? Стоит ли Python разделять модули дальше по специализации?
🔗 Подробнее в PEP 791: https://clc.to/POzTkw
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🤖 ML в продакшене — что происходит после деплоя
Запустить модель в прод — это только начало. Дальше начинается самое интересное:
— Поведение пользователей меняется
— Данные плывут
— Качество модели может незаметно упасть
Чтобы не проспать деградацию, нужна система:
🤖 Метрики
🤖 Мониторинг
🤖 Алерты
🤖 A/B-тесты
🤖 Готовность переобучить модель
В новой статье рассказываем, как организовать контроль качества ML-модели после релиза и не потерять бизнес-метрики в продакшене.
📎 Читайте подробнее: https://proglib.io/sh/fjpFLVWn8Z
Библиотека питониста
Запустить модель в прод — это только начало. Дальше начинается самое интересное:
— Поведение пользователей меняется
— Данные плывут
— Качество модели может незаметно упасть
Чтобы не проспать деградацию, нужна система:
В новой статье рассказываем, как организовать контроль качества ML-модели после релиза и не потерять бизнес-метрики в продакшене.
📎 Читайте подробнее: https://proglib.io/sh/fjpFLVWn8Z
Библиотека питониста
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
🔐 pipask — безопасная установка Python-пакетов без потери удобства
Устанавливаете пакеты через
В отличие от обычного pip, который может запускать сторонний код, чтобы узнать зависимости,
👉 Установка (лучше через
💡 Используется точно так же, как pip:
💡 Для удобства можно сделать alias:
Какие проверки выполняет pipask перед установкой:
— Популярность репозитория
— Возраст пакета и релиза
— Уязвимости в базе PyPI
— Кол-во загрузок за месяц
— Проверка метаданных (лицензия, статус разработки, снятие с публикации)
🔍 Хотите просто проверить, не устанавливая? Используйте
Библиотека питониста #буст
Устанавливаете пакеты через
pip
? А вы уверены, что именно устанавливаете?pipask
— это drop-in замена для pip, которая проверяет безопасность пакета до установки. В отличие от обычного pip, который может запускать сторонний код, чтобы узнать зависимости,
pipask
использует безопасные метаданные с PyPI. Если всё же требуется выполнить внешний код — система предупредит и попросит согласие.👉 Установка (лучше через
pipx
):pipx install pipask
# или
pip install pipask
💡 Используется точно так же, как pip:
pipask install requests
pipask install 'fastapi>=0.100.0'
pipask install -r requirements.txt
💡 Для удобства можно сделать alias:
alias pip='pipask'
Какие проверки выполняет pipask перед установкой:
— Популярность репозитория
— Возраст пакета и релиза
— Уязвимости в базе PyPI
— Кол-во загрузок за месяц
— Проверка метаданных (лицензия, статус разработки, снятие с публикации)
🔍 Хотите просто проверить, не устанавливая? Используйте
--dry-run
:pipask install some-package --dry-run
Библиотека питониста #буст
🥵 Устали от статей, где эйчары рассказывают, как на самом деле выглядит рынок труда в ИТ?
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.
Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).
👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
Мы тоже! Поэтому решили узнать правду и представить ее всем айтишникам — но нам нужен ваш голос. Опрос займет 3 минуты, а пользы — вагон для всего сообщества.
Результаты этого исследования помогут понять, как специалистам искать работу в 2025-м (а компаниям — специалистов).
👉 Если вы готовы сделать свой вклад в исследование — велком: https://clc.to/VGgyNA
💡 Прокачай Python: потоки, процессы и производительность
Хотите ускорить свои Python-приложения и сделать их более отзывчивыми?
🔝 Это видео — отличное руководство по конкурентному и параллельному программированию в Python.
🔧 Что разбирают в видео:
— В чём разница между конкурентностью и параллелизмом
— Как использовать многопоточность (
— Как добиться настоящего параллелизма с
— Что такое GIL и как обойти его ограничения
— Как безопасно делить данные между потоками через mutex'ы
— Как реализовать фоновую обработку, чтобы избежать блокировок API
✅ Подходит для разработчиков любого уровня.
🔗 Смотреть видео: https://clc.to/uZgzbw
Библиотека питониста #буст
Хотите ускорить свои Python-приложения и сделать их более отзывчивыми?
🔝 Это видео — отличное руководство по конкурентному и параллельному программированию в Python.
🔧 Что разбирают в видео:
— В чём разница между конкурентностью и параллелизмом
— Как использовать многопоточность (
threading
) для одновременного выполнения задач— Как добиться настоящего параллелизма с
multiprocessing
— Что такое GIL и как обойти его ограничения
— Как безопасно делить данные между потоками через mutex'ы
— Как реализовать фоновую обработку, чтобы избежать блокировок API
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🎬 Документальный фильм о Python
На PyCon недавно презентовали трейлер этого уникального проекта — фильм, полностью посвящённый нашему любимому языку программирования.
🤔 Лично я впервые вижу, чтобы про язык программирования снимали полноценный документальный фильм.
Будет ли он интересен не только разработчикам, но и широкой аудитории?
💬 Что думаете? Делитесь в комментариях!
🔗 Ссылка на трейлер: https://clc.to/GHAsrg
Библиотека питониста #свежак
На PyCon недавно презентовали трейлер этого уникального проекта — фильм, полностью посвящённый нашему любимому языку программирования.
🤔 Лично я впервые вижу, чтобы про язык программирования снимали полноценный документальный фильм.
Будет ли он интересен не только разработчикам, но и широкой аудитории?
🔗 Ссылка на трейлер: https://clc.to/GHAsrg
Библиотека питониста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Хотите писать чистый, читаемый и лаконичный код без явных циклов? Тогда самое время освоить функции высшего порядка —
map()
, filter()
и reduce()
. Функции высшего порядка — это функции, которые:
— принимают другие функции как аргументы,
— или возвращают функции в качестве результата.
В Python это не только
map()
, filter()
и reduce()
, но и любые функции, работающие с другими функциями.map()
: применяем функцию ко всем элементамИспользуется для трансформации каждого элемента в итерируемом объекте:
string_numbers = ["1", "2", "3", "4"]
int_numbers = map(int, string_numbers)
print(list(int_numbers)) # [1, 2, 3, 4]
Или, например:
def add_five(x): return x + 5
numbers = [1, 2, 3]
result = map(add_five, numbers)
print(list(result)) # [6, 7, 8]
filter()
: фильтруем по условиюОтбирает элементы, удовлетворяющие определённому условию:
data = [0, None, 1, 2, None, 3]
filtered_data = filter(None, data)
print(list(filtered_data)) # [1, 2, 3]
Пример с четными числами:
def is_even(x): return x % 2 == 0
numbers = [1, 2, 3, 4, 5, 6]
even_numbers = filter(is_even, numbers)
print(list(even_numbers)) # [2, 4, 6]
reduce()
: аккумулируем значенияФункция из модуля
functools
, применяется для накопления результата по итерации:from functools import reduce
def add(x, y): return x + y
numbers = [1, 2, 3, 4, 5]
result = reduce(add, numbers)
print(result) # 15
Пример нахождения максимума:
def max_value(x, y): return x if x > y else y
numbers = [10, 2, 33, 4, 7]
result = reduce(max_value, numbers)
print(result) # 33
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
⠀
Даже если вы давно работаете с Python, в стандартной библиотеке наверняка найдётся что-то, о чём вы ещё не знали.
Мы собрали 7 недооценённых модулей, которые помогут:
⠀
📖 Подробнее — в полной статье: https://clc.to/9eN3cA
Библиотека питониста #буст
Please open Telegram to view this post
VIEW IN TELEGRAM
💭 Холивар: использовать ли type hints в Python повсеместно?
Мидл-разработчик выкатил pull request: всё строго типизировано, каждый аргумент и возврат аннотирован, IDE ликует.
Но на ревью лида — буря: «Это ж Python, а не Java! Зачем эти
Мидл парирует: «Type hints помогают IDE, автодополнению, рефакторингу. Упростят жизнь через месяц!»
Лид в ответ: «Ты тратишь время на синтаксический сахар. Питон не про это!»
Команда разделилась. Кто-то за лаконичный питон с duck typing, кто-то за строгую культуру типов.
А вы что скажете? Как вы используете type hints в своих проектах на Python?
👇 Голосуем в комментах:
❤️ Type hints — маст хэв
👍 Type hints только тормозят
P.S. Инструкция, как оставить коммент
Библиотека питониста #междусобойчик
Мидл-разработчик выкатил pull request: всё строго типизировано, каждый аргумент и возврат аннотирован, IDE ликует.
Но на ревью лида — буря: «Это ж Python, а не Java! Зачем эти
-> str
в каждой функции? У нас же динамика!»Мидл парирует: «Type hints помогают IDE, автодополнению, рефакторингу. Упростят жизнь через месяц!»
Лид в ответ: «Ты тратишь время на синтаксический сахар. Питон не про это!»
Команда разделилась. Кто-то за лаконичный питон с duck typing, кто-то за строгую культуру типов.
А вы что скажете? Как вы используете type hints в своих проектах на Python?
👇 Голосуем в комментах:
❤️ Type hints — маст хэв
👍 Type hints только тормозят
P.S. Инструкция, как оставить коммент
Библиотека питониста #междусобойчик